// package com.cloudfunx.common.util;
//
// import com.google.common.cache.Cache;
// import com.google.common.cache.CacheBuilder;
//
// import java.util.concurrent.TimeUnit;
//
// public class LockKit {
//     private static final String LOCK_PREFIX = "LOCK_PREFIX_";
//
//     private static final Cache<String, String> cache = CacheBuilder.newBuilder().expireAfterAccess(10, TimeUnit.SECONDS).build();
//
//     /**
//      * 获取乐观锁
//      *
//      * @param key
//      * @return
//      */
//     public static boolean tryLock(String key) {
//         if (cache.getIfPresent(LOCK_PREFIX + key) != null) {
//             return false;
//         }
//         // 多个操作需要加锁
//         synchronized (LockKit.class){
//             if(cache.getIfPresent(LOCK_PREFIX + key) == null){
//                 cache.put(LOCK_PREFIX + key, "");
//                 return true;
//             }
//         }
//         return false;
//     }
//
//
//     public static void release(String key) {
//         // guava cache 是线程安全的，故单个操作不需要加锁
//         cache.invalidate(LOCK_PREFIX + key);
//     }
// }
